home *** CD-ROM | disk | FTP | other *** search
- (
- ( Scans through object tree and prints out object attributes
- (
-
- "objects.rpl" LOAD
- "locks.rpl" LOAD
-
- 300 STRING sBuffer
-
- : DmpObjAttrs
- PARAM
- VARIABLE iCnt ( recursion depth
- VARIABLE aFile
- VARIABLE aObject
- ENDPARAM
-
- ( handle indenting
- iCnt FETCH 0
- DO
- " " aFile FETCH FPUTS DROP
- LOOP
-
- ( name
- aObject FETCH O.sNAME + "%-10s" sBuffer SPRINTF
- sBuffer aFile FETCH FPUTS DROP
-
- ( handle indenting
- 20 iCnt FETCH - 0
- DO
- " " aFile FETCH FPUTS DROP
- LOOP
-
- ( other attributes
- "X X X X X X X X" aFile FETCH FPUTS DROP
-
- "|n" sBuffer SPRINTF
- sBuffer aFile FETCH FPUTS DROP
- ;
-
- : DmpObj
- PARAM
- VARIABLE aObj ( object to be dumped
- VARIABLE iLevel ( recursion level for indenting
- VARIABLE aFile
- ENDPARAM
-
- ( Dump object attributes to a file
- iLevel FETCH aFile FETCH aObj FETCH DmpObjAttrs
-
- ( recursively handle sub objects
- aObj FETCH O_GETSUB
- BEGIN DUP WHILE
- DUP iLevel FETCH 1 + aFile FETCH DmpObj
- O_GETNEXT
- REPEAT
- DROP
- ;
-
- : DmpObjects
- PARAM
- VARIABLE aFileName
- ENDPARAM
- VARIABLE aFile
-
- ( Open file
- aFileName FETCH "w" FOPEN DUP aFile STORE
- NOT IF
- aFileName FETCH "Cannot open file %s" ERROR
- ENDIF
-
- ( Dump objects
- iLOCK_SHARED O_LOCK
- O_GETROOT 0 aFile FETCH DmpObj
- iLOCK_REMOVE O_LOCK
-
- ( close file
- aFile FETCH FCLOSE
- ;
-
- "ram:test" DmpObjects
-